
#include <stdio.h>

int main()
{
    int a[2][3][4] = {{{1,2,321,321},{3213,3,12,3},{3123,1,421,12}}, {{312,41,412,4124},{1,32,4,12},{0}}};
    //这个是一个多维数组
    //有两个二维数组，二维数组的数组名是a[0],a[1]
    //a[0][0][0] = 5;
    //int index = 0 ;
    int i, j, k, l;
    int num_i = sizeof(a) / sizeof(a[0]);
    int num_j = sizeof(a[0]) / sizeof(a[0][0]);
    int num_k = sizeof(a[0][0]) / sizeof(a[0][0][0]);
    int max = sizeof(a) / sizeof(a[0][0][0]);

    printf("%d\n", num_i);
    printf("%d\n", num_j);
    printf("%d\n", num_k);

    // 遍历数组，给数组赋值
    /*
    for (i = 0; i < num_i; i++)
    {
        for (j = 0; j < num_j; j++)
        {
            for (k = 0; k < num_k; k++)
            {
                a[i][j][k] = index++;
            }
        }
    }

    */
    //????????????????????????????????????????????????
    // 排序数组,冒泡排序
    // 外三层循环遍历数组
    // 第四次循环控制交换次数
    // if语句交换位置
    for (i = 0; i < num_i; i++)
    {
        for (j = 0; j < num_j; j++)
        {
            for (k = 0; k < num_k; k++)
            {
                for (l = 1; l < max - i*k*j; l++)
                {
                    //if (a[i][j][k - 1] > a[i][j][k])
                    if (a[i][j][k - 1] < a[i][j][k])
                    {
                        int tmp = a[i][j][k -1];
                        a[i][j][k - 1]= a[i][j][k];
                        a[i][j][k] = tmp;

                    }
                }
            }
            printf("\n");
        }
        printf("\n");
    }


    // 遍历数组
    for (i = 0; i < num_i; i++)
    {
        for (j = 0; j < num_j; j++)
        {
            for (k = 0; k < num_k; k++)
            {
                printf("a[%d][%d][%d] = %d\t", i, j, k, a[i][j][k]);
            }
            printf("\n");
        }
        printf("\n");
    }


    return 0;
}

